﻿Imports TepcelDominio
Imports TepcelBL
Public Class frmMovimientoAlmacen
    Dim NotaAlmacenBL As NotaAlmacenBL
    Public NotaAlmacen As NotaAlmacen
    Dim ExistenciaBL As New ExistenciaBL

    Public Property IndexDetalle As Integer
    Public Property NewIndexDetalle As Integer

    Public Shared Property tipoNota As String
    Public Shared Property instanciaEntrada As frmMovimientoAlmacen = Nothing
    Public Shared Property instanciaSalida As frmMovimientoAlmacen = Nothing

    Public Property currentRowEditSerie As DataGridViewRow = Nothing

    Dim valid As Integer = 0
    Dim err As New System.Windows.Forms.ErrorProvider

    Public Shared Function Instance(ByVal pTipoNota As String) As frmMovimientoAlmacen
        Dim frmInstance As frmMovimientoAlmacen = Nothing
        Select Case pTipoNota
            Case "E"
                If instanciaEntrada Is Nothing OrElse instanciaEntrada.IsDisposed = True Then
                    instanciaEntrada = New frmMovimientoAlmacen
                End If
                frmInstance = instanciaEntrada
            Case "S"
                If instanciaSalida Is Nothing OrElse instanciaSalida.IsDisposed = True Then
                    instanciaSalida = New frmMovimientoAlmacen
                End If
                frmInstance = instanciaSalida
        End Select

        tipoNota = pTipoNota
        frmInstance.BringToFront()

        Return frmInstance
    End Function

    Public Shared Function Instance() As frmMovimientoAlmacen
        Select Case tipoNota
            Case "E"
                Return instanciaEntrada
            Case "S"
                Return instanciaSalida
            Case Else
                Return Nothing
        End Select
    End Function

    
    Private Sub frmMovimientoAlmacen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btnGenerarGuia.Visible = False
        If tipoNota = "E" Then
            Me.Text = "Registrar Entrada Almacén"
            lbOrigenDestino.Text = "Origen:"
        ElseIf tipoNota = "S" Then
            Me.Text = "Registrar Salida Almacén"
            lbOrigenDestino.Text = "Destino:"
        End If
    End Sub

    Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        resetVariables()
        NotaAlmacen = New NotaAlmacen
        NotaAlmacenBL = New NotaAlmacenBL

        txtOrigenDestino.Enabled = True
        txtDescripcion.Enabled = True

        txtFechaemision.Text = UCase(Format(Date.Now, "d/MM/yyyy"))
        txtSerieNota.Text = "001"

        btnNuevo.Enabled = False
        btnGuardar.Enabled = True
        btnCancelar.Enabled = True

        DGVLista.Enabled = True
        DGVSeries.Enabled = True

        txtOrigenDestino.Focus()

    End Sub

    Public Sub limpiar()
        txtCodigoNota.Text = ""
        txtSerieNota.Text = ""
        txtNumeroNota.Text = ""
        txtFechaemision.Text = ""
        txtOrigenDestino.Text = ""
        txtDescripcion.Text = ""
        NotaAlmacen = Nothing
        NotaAlmacenBL = Nothing
        DGVLista.Rows.Clear()

    End Sub

    Private Function validarGridSeries() As Boolean
        Dim txt As String
        Dim i As Integer
        If currentRowEditSerie Is Nothing Then Return True
        If currentRowEditSerie.Cells(0).EditedFormattedValue Is Nothing Then Return True
        txt = currentRowEditSerie.Cells(0).EditedFormattedValue.ToString.Trim
        For i = 0 To DGVSeries.Rows.Count - 1
            If i <> currentRowEditSerie.Index And Not DGVSeries.Rows(i).Cells(0).Value Is Nothing Then
                If txt.Trim = DGVSeries.Rows(i).Cells(0).Value.ToString.Trim Then
                    Return False
                End If
            End If
        Next
        Return True
    End Function

    Private Function validarExitencia() As Boolean
        'buscamos si la serie pertenece al poducto
        Dim txt As String
        If currentRowEditSerie Is Nothing Then Return True
        If currentRowEditSerie.Cells(0).EditedFormattedValue Is Nothing Then Return True
        txt = currentRowEditSerie.Cells(0).EditedFormattedValue.ToString.Trim
        Dim existencia As Existencia = ExistenciaBL.GetBySerieFromDetalleexistencia(txt)
        If existencia.Detalle(0).codigoDetalleExistencia <> 0 Then
            If existencia.Producto.codigoProducto <> NotaAlmacen.DetalleAlmacen(DGVLista.CurrentRow.Index).Producto.codigoProducto Then
                Return False
            End If
        End If
        Return True
    End Function

    Private Function validarEntradSalidaExistencia() As Boolean
        'verificamos se la serie puede salir o entrar
        Dim txt As String
        If currentRowEditSerie Is Nothing Then Return True
        If currentRowEditSerie.Cells(0).EditedFormattedValue Is Nothing Then Return True
        txt = currentRowEditSerie.Cells(0).EditedFormattedValue.ToString.Trim
        Dim existencia As Existencia = ExistenciaBL.GetBySerieFromDetalleexistencia(txt)
        If tipoNota = "E" Then
            If Existencia.Detalle(0).estadoProductoAlmacen = "E" Then
                Return False
            End If
        ElseIf tipoNota = "S" Then
            If Existencia.Detalle(0).estadoProductoAlmacen = "S" Then
                Return False
            End If
        End If
        Return True

    End Function

    Private Sub DGVSeries_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVSeries.CellEndEdit
        If DGVSeries.Focused Then Return
        If validarGridSeries() = False Then
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            DGVSeries.BeginEdit(True)
            MsgBox("La serie ya existe en la lista")
            Return
        End If

        If validarExitencia() = False Then
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            DGVSeries.BeginEdit(True)
            MsgBox("La serie no pertenece al producto seleccionado")
            Return
        End If

        If validarEntradSalidaExistencia() = False Then
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            DGVSeries.BeginEdit(True)
            If tipoNota = "E" Then
                MsgBox("No se puede ingresar el producto porque ya fue registrado su ingreso")
            Else
                MsgBox("No se puede sacar el producto porque ya fue registrado su salida")
            End If
        End If
    End Sub


    Private Sub DGVSeries_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVSeries.SelectionChanged
        If currentRowEditSerie Is Nothing Then Return
        If currentRowEditSerie.Index = DGVSeries.CurrentRow.Index Then Return
        If valid > 0 Then
            valid = 0
            Return
        End If
        If validarGridSeries() = False Then
            valid = valid + 1
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            currentRowEditSerie = DGVSeries.CurrentRow
            currentRowEditSerie.Cells(0).Value = Nothing
            DGVSeries.BeginEdit(True)
            MsgBox("La serie ya existe en la lista")
            Return
        End If

        If validarExitencia() = False Then
            valid = valid + 1
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            currentRowEditSerie = DGVSeries.CurrentRow
            currentRowEditSerie.Cells(0).Value = Nothing
            DGVSeries.BeginEdit(True)
            MsgBox("La serie no pertenece al producto seleccionado")
            Return
        End If

        If validarEntradSalidaExistencia() = False Then
            valid = valid + 1
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            currentRowEditSerie = DGVSeries.CurrentRow
            currentRowEditSerie.Cells(0).Value = Nothing
            DGVSeries.BeginEdit(True)
            If tipoNota = "E" Then
                MsgBox("No se puede ingresar el producto porque ya fue registrado su ingreso")
            Else
                MsgBox("No se puede sacar el producto porque ya fue registrado su salida")
            End If
        End If

    End Sub

    Private Sub DGVSeries_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DGVSeries.CellBeginEdit
        currentRowEditSerie = DGVSeries.CurrentRow
    End Sub

    Public Sub nuevaFila()
        With DGVLista
            .Rows.Add()
            .CurrentCell = .Rows(.Rows.Count - 1).Cells(2)
            .BeginEdit(True)
            IndexDetalle = NewIndexDetalle
            NewIndexDetalle = .Rows.Count - 1
        End With
        DGVSeries.Rows.Clear()
    End Sub

    Public Sub BuscarProducto(ByVal index As Integer)
        My.Forms.frmAgregarProducto.row = DGVLista.Rows(index)
        My.Forms.frmAgregarProducto.ShowDialog()
    End Sub

    Public Sub agregarDatos(ByVal index As Integer)
        If NotaAlmacen Is Nothing Then Return
        Dim i As Integer
        Dim txt As String
        If DGVSeries.Rows.Count = 0 Then Return
        For i = 0 To DGVSeries.Rows.Count - 1
            txt = DGVSeries.Rows(i).Cells(0).Value
            If txt Is Nothing Then
                txt = DGVSeries.Rows(i).Cells(0).EditedFormattedValue
            End If

            If DGVSeries.CurrentRow.Index = i Then
                txt = DGVSeries.Rows(i).Cells(0).EditedFormattedValue
            End If

            If i <= NotaAlmacen.DetalleAlmacen(index).Series.Count - 1 Then
                NotaAlmacen.DetalleAlmacen(index).Series(i).DetalleExistencia.serieProducto = txt
            Else
                Dim existencia As Existencia = ExistenciaBL.GetBySerieFromDetalleexistencia(txt)
                Dim serie As New NotaAlmacen.DetalleNotaAlmacen.SerieProductoNotaAlmacen
                serie.DetalleExistencia.codigoDetalleExistencia = existencia.Detalle(0).codigoDetalleExistencia
                serie.DetalleExistencia.serieProducto = txt
                NotaAlmacen.DetalleAlmacen(index).Series.Add(serie)
            End If
        Next

        validarSeries(index)

        NotaAlmacen.DetalleAlmacen(index).cantidadNotaAlmacen = NotaAlmacen.DetalleAlmacen(index).Series.Count
        DGVLista.Rows(index).Cells(3).Value = NotaAlmacen.DetalleAlmacen(index).Series.Count

    End Sub

    Private Sub llenarSeries(ByVal index As Integer)
        DGVSeries.Rows.Clear()
        If NotaAlmacen Is Nothing Then Return
        If NotaAlmacen.DetalleAlmacen.Count = 0 Then Return
        If DGVLista.CurrentRow.Cells(1).Value Is Nothing Then Return
        Dim i As Integer
        For i = 0 To NotaAlmacen.DetalleAlmacen(index).Series.Count - 1
            DGVSeries.Rows.Add(NotaAlmacen.DetalleAlmacen(index).Series(i).DetalleExistencia.serieProducto)
        Next
    End Sub

    Private Sub validarSeries(ByVal index As Integer)
        Dim i As Integer
        While i < NotaAlmacen.DetalleAlmacen(index).Series.Count
            If NotaAlmacen.DetalleAlmacen(index).Series(i).DetalleExistencia.serieProducto.Trim.Length = 0 Then
                NotaAlmacen.DetalleAlmacen(index).Series.RemoveAt(i)
            Else
                i = i + 1
            End If
        End While
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        Dim msg As String = ""
        If tipoNota = "E" Then
            msg = "Ingrese el Origen de la Entrada"
        ElseIf tipoNota = "S" Then
            msg = "Ingrese el Destino de la Salida"
        End If

        If txtOrigenDestino.Text.Trim.Length = 0 Then
            err.SetError(txtOrigenDestino, msg)
            Return
        Else
            err.SetError(txtOrigenDestino, "")
        End If

        If txtDescripcion.Text.Trim.Length = 0 Then
            err.SetError(txtDescripcion, "Ingrese una Descripción")
            Return
        Else
            err.SetError(txtDescripcion, "")
        End If

        If DGVLista.Rows.Count = 0 Then
            err.SetError(DGVLista, "Debe Ingresar por lo menos un producto")
            Return
        Else
            err.SetError(DGVLista, "")
        End If

        If DGVLista.Rows(0).Cells(1).Value.ToString.Length = 0 Then
            err.SetError(DGVLista, "Uno o mas productos no son válidos, debe seleccionar un producto válido")
            Return
        Else
            err.SetError(DGVLista, "")
        End If

        If validarGridSeries() = False Then Return

        Dim i As Integer

        Call agregarDatos(DGVLista.CurrentRow.Index)

        For i = 0 To NotaAlmacen.DetalleAlmacen.Count - 1
            validarSeries(i)
        Next

        For i = 0 To DGVLista.Rows.Count - 1
            If Not DGVLista.Rows(i).Cells(1).Value Is Nothing Then
                If DGVLista.Rows(i).Cells(3).Value Is Nothing Then
                    MsgBox("Ingrese la cantidad del producto")
                    DGVLista.CurrentCell = DGVLista.Rows(i).Cells(3)
                    DGVLista.Rows(i).Selected = True
                    DGVLista.BeginEdit(True)
                    NewIndexDetalle = i
                    llenarSeries(i)
                    Return
                Else
                    NotaAlmacen.DetalleAlmacen(i).cantidadNotaAlmacen = DGVLista.Rows(i).Cells(3).Value
                End If
            End If
        Next


        NotaAlmacen.tipoNotaAlmacen = tipoNota
        NotaAlmacen.numeroNotaAlmacen = txtNumeroNota.Text
        NotaAlmacen.fechaEmision = Format(Date.Now, "d/MM/yyyy hh:mm:ss")
        If tipoNota = "E" Then
            NotaAlmacen.origenEntrada = txtOrigenDestino.Text
            NotaAlmacen.destinoSalida = ""
        ElseIf tipoNota = "S" Then
            NotaAlmacen.origenEntrada = ""
            NotaAlmacen.destinoSalida = txtOrigenDestino.Text
        End If
        NotaAlmacen.descripcionNota = txtDescripcion.Text
        NotaAlmacen.Almacen.codigoAlmacen = "A001"
        NotaAlmacen.codigoUsuario = "L001"
        NotaAlmacen.estadoNotaAlmacen = "E"

        Dim codNota As Integer = NotaAlmacenBL.NuevoNotaAlmacen(NotaAlmacen)

        If codNota > 0 Then
            txtCodigoNota.Text = codNota
            txtNumeroNota.Text = NotaAlmacen.numeroNotaAlmacen
            btnCancelar.Enabled = False
            btnGuardar.Enabled = False
            txtOrigenDestino.Enabled = False
            txtDescripcion.Enabled = False
            btnNuevo.Enabled = True
            btnNuevo.Focus()
            DGVLista.Tag = "1"
            DGVSeries.Tag = "1"
            btnGenerarGuia.Visible = True

            Dim result As DialogResult = MessageBox.Show("Entrada Registrada Correctamente, Desea Imprimir la Nota de Entrada?", "Registro de Entrada", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
            If result = DialogResult.OK Then
                'cargar el reporte
                Dim rep As New MovimientoAlmacen
                rep.SetParameterValue("@codigoNotaAlmacen", codNota)
                rep.PrintToPrinter(1, False, 0, 0)

            End If
        End If

    End Sub

    Private Sub DGVLista_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVLista.SelectionChanged
        If DGVLista.Rows.Count = 0 Then Return
        IndexDetalle = NewIndexDetalle
        NewIndexDetalle = DGVLista.CurrentRow.Index
        Call agregarDatos(IndexDetalle)
        Call llenarSeries(NewIndexDetalle)
    End Sub

    'agregar una fila con el contextmenu en el datagridview series
    Private Sub btnAgregarSerie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarSerie.Click
        AgregarFilaSerie()
    End Sub

    Public Sub AgregarFilaSerie()
        If DGVSeries.Tag = "1" Then Return
        If DGVLista.Rows.Count = 0 Then Return
        If DGVLista.CurrentRow.Cells(1).Value Is Nothing Then Return
        If DGVSeries.Rows.Count = 0 Then
            With DGVSeries
                .Rows.Add()
                .CurrentCell = .Rows(.Rows.Count - 1).Cells(0)
                .BeginEdit(True)
            End With
            Return
        End If
        Dim i As Integer
        Dim txt As String = ""
        Dim fb As Integer = 0 'numero de filas en vacias
        'si la fila actual esta en blanco no se agrega otra
        txt = DGVSeries.CurrentRow.Cells(0).EditedFormattedValue.ToString.Trim
        If txt.Trim.Length = 0 Then Return

        'buscamos si alguna fila esta en blanco o es valor repetido
        For i = 0 To DGVSeries.Rows.Count - 1
            If DGVSeries.Rows(i).Cells(0).Value Is Nothing And i <> DGVSeries.CurrentRow.Index Then
                fb = fb + 1
            Else
                If i <> DGVSeries.CurrentRow.Index Then
                    If txt.Trim = DGVSeries.Rows(i).Cells(0).Value.ToString.Trim Then
                        MsgBox("La serie ya existe en la lista")
                        SendKeys.SendWait("^a")
                        'SendKeys.SendWait("{DELETE}")
                        Return
                    End If
                End If
            End If
        Next

        'buscamos que no se repita en las series de otro item del detalle
        Dim j As Integer
        For j = 0 To NotaAlmacen.DetalleAlmacen.Count - 1
            If j <> DGVLista.CurrentRow.Index Then
                For i = 0 To NotaAlmacen.DetalleAlmacen(j).Series.Count - 1
                    If txt.Trim = NotaAlmacen.DetalleAlmacen(j).Series(i).DetalleExistencia.serieProducto Then
                        MsgBox("La serie ya existe en la lista de otro producto" & vbCrLf & "Producto: " & NotaAlmacen.DetalleAlmacen(j).Producto.codigoProducto)
                        SendKeys.SendWait("^a")
                        Return
                    End If
                Next
            End If
        Next

        'buscamos si la serie pertenece al poducto
        Dim existencia As Existencia = ExistenciaBL.GetBySerieFromDetalleexistencia(txt)
        If existencia.Detalle(0).codigoDetalleExistencia <> 0 Then
            If existencia.Producto.codigoProducto <> NotaAlmacen.DetalleAlmacen(DGVLista.CurrentRow.Index).Producto.codigoProducto Then
                MsgBox("La serie no pertenece al producto seleccionado")
                SendKeys.SendWait("^a")
                Return
            End If
        End If

        'verificamos se la serie puede salir o entrar
        If tipoNota = "E" Then
            If existencia.Detalle(0).estadoProductoAlmacen = "E" Then
                MsgBox("No se puede ingresar el producto porque ya fue registrado su ingreso")
                Return
            End If
        ElseIf tipoNota = "S" Then
            If existencia.Detalle(0).estadoProductoAlmacen = "S" Then
                MsgBox("No se puede sacar el producto porque ya fue registrado su salida")
                Return
            End If
        End If

        If fb > 0 Then
            Return
        End If

        With DGVSeries
            .Rows.Add()
            .CurrentCell = .Rows(.Rows.Count - 1).Cells(0)
            .BeginEdit(True)
        End With
    End Sub

    'agrega fila con el context menu en el datagridview detalle
    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
        Call AgregarFilaDetalle()
    End Sub

    Public Sub AgregarFilaDetalle()
        If DGVLista.Tag = "1" Then Return
        If validarGridSeries() = False Then
            MsgBox("La serie ya existe en la lista")
            Return
        End If

        If validarExitencia() = False Then
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            DGVSeries.BeginEdit(True)
            MsgBox("La serie no pertenece al producto seleccionado")
            Return
        End If

        If validarEntradSalidaExistencia() = False Then
            DGVSeries.CurrentCell = currentRowEditSerie.Cells(0)
            currentRowEditSerie.Selected = True
            DGVSeries.BeginEdit(True)
            If tipoNota = "E" Then
                MsgBox("No se puede ingresar el producto porque ya fue registrado su ingreso")
            Else
                MsgBox("No se puede sacar el producto porque ya fue registrado su salida")
            End If
            Return
        End If


        If DGVLista.Rows.Count = 0 Then
            nuevaFila()
            Return
        End If
        Dim i As Integer
        For i = 0 To DGVLista.Rows.Count - 1
            If DGVLista.Rows(i).Cells(1).Value Is Nothing Then Return
        Next
        Call agregarDatos(DGVLista.CurrentRow.Index)
        nuevaFila()
    End Sub

    Private Sub btnQuitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitar.Click
        If DGVLista.Tag = "1" Then Return
        If DGVLista.CurrentRow.Cells(1).Value Is Nothing Then
            DGVLista.Rows.RemoveAt(DGVLista.CurrentRow.Index)
            Return
        End If
        Dim result As DialogResult
        result = MessageBox.Show("Registro Seleccionado:" & vbCrLf & "Código: " & DGVLista.CurrentRow.Cells(1).Value & vbCrLf & "Producto: " & DGVLista.CurrentRow.Cells(2).Value & vbCrLf & vbCrLf & "¿confirma que desea Eliminar el Registro seleccionado?", "Eliminar", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
        If result = DialogResult.OK Then
            DGVSeries.Rows.Clear()
            NotaAlmacen.DetalleAlmacen.RemoveAt(DGVLista.CurrentRow.Index)
            DGVLista.Rows.RemoveAt(DGVLista.CurrentRow.Index)
        End If
    End Sub

    Private Sub btnQuitarSerie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitarSerie.Click
        If DGVSeries.Tag = "1" Then Return
        If DGVSeries.CurrentRow.Cells(0).Value Is Nothing Then
            DGVSeries.Rows.RemoveAt(DGVSeries.CurrentRow.Index)
            Return
        End If
        Dim result As DialogResult
        result = MessageBox.Show("Registro Seleccionado:" & vbCrLf & "Serie: " & DGVSeries.CurrentRow.Cells(0).Value & vbCrLf & vbCrLf & "¿confirma que desea Eliminar el Registro seleccionado?", "Eliminar", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
        If result = DialogResult.OK Then
            NotaAlmacen.DetalleAlmacen(DGVLista.CurrentRow.Index).Series.RemoveAt(DGVSeries.CurrentRow.Index)
            DGVSeries.Rows.RemoveAt(DGVSeries.CurrentRow.Index)
        End If
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        btnGuardar.Enabled = False
        btnNuevo.Enabled = True
        btnCancelar.Enabled = False

        resetVariables()

        DGVLista.Enabled = False
        DGVSeries.Enabled = False
        txtOrigenDestino.Enabled = False
        txtDescripcion.Enabled = False

    End Sub

    Private Sub resetVariables()
        IndexDetalle = 0
        NewIndexDetalle = 0
        currentRowEditSerie = Nothing
        valid = 0
        NotaAlmacen = Nothing
        DGVLista.Tag = ""
        DGVSeries.Tag = ""
        DGVLista.Rows.Clear()
        DGVSeries.Rows.Clear()
        txtOrigenDestino.Text = ""
        txtDescripcion.Text = ""
        txtCodigoNota.Text = ""
        txtSerieNota.Text = ""
        txtNumeroNota.Text = ""
        txtFechaemision.Text = ""
        btnGenerarGuia.Visible = False
    End Sub

    Private Sub btnGenerarGuia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGenerarGuia.Click
        MsgBox("Generar Guia a Partir de la Salida codigo = " & NotaAlmacen.codigoNotaAlmacen)
    End Sub


End Class
